<?php
// Verifica si el usuario esta en la base de datos y si la password es correcta.
function es_usuario ( $usuario, $password, $conexion ) {
   // verifica que esten los dos campos completos.
   if ($usuario=='' || $password=='') {
      $row['error']     = 'El nombre de usuario o contrase&ntilde;a no es v&atilde;lida.';
      return $row;
   }
   
   // busqueda de los datos de usuarios para loguear.
   $query = "SELECT * FROM Personal NATURAL LEFT JOIN Tipo_Personal WHERE per_nick = '$usuario'";
   $resultado = mysql_query ($query, $conexion);   

   if( $resultado == FALSE) {
      $row['error']     = 'El usuario no se encuentra registrado';      
      return $row;
   }

   $row = mysql_fetch_array ($resultado);
   
   if( empty($row)) {
      $row['error']     = 'El usuario no se encuentra registrado.';      
      return $row;
   }
   unset($query);
         
   // verifica que el pass enviado sea igual al pass de la db.
   // EN CASO DE ENCRIPTACION BORRAR md5()
   if ( md5($row['per_pass']) != $password ) {      // La password es incorrecta.
      $row['error']  = 'La contrase&ntilde;a no coincide.';
      unset($row['per_rut']);                       // Anulamos el id del usuario con pass incorrecta.
      return $row;
   }
   
   // Chequemos que el usuario se encuentre activo.
   /*if( $row['usu_hab'] == false) {           // Si el usuario esta baneado
      $row['error'] = 'Su cuenta se encuentra inactiva. Por fabor, contacte con el administrador.';
      unset($row['rut']);                       // Anulamos el rut del usuario con pass incorrecta.
      return $row;
   } */    
   
   $row['error'] = false;
   return $row;                                 // Si estamos aca, todo esta correcto.
}

// Retorna verdadero si esta el dato en la tabla dada
function esta_dato( $tabla, $campo, $dato, $conexion) {
   $query = "SELECT $campo FROM `$tabla` WHERE $campo = '$dato'";
   $resultado = mysql_query ($query, $conexion);
   
   if( !$resultado)
      return false;
         
   $row = mysql_fetch_array ($resultado);
   
   if( empty($row[$campo])) {   
      return false;
   }
   return true;
}

// Delete a file or recursively delete a directory
// @param string $str Path to file or directory
function recursiveDelete($str){
    if(is_file($str)){
        return unlink($str);
    } elseif(is_dir($str)){
        $scan = glob(rtrim($str,'/').'/*');
        foreach($scan as $index=>$path){
            recursiveDelete($path);
        }
        return rmdir($str);
    }
}

// Extrae el rut y digito verificador de una cadena
function extraer_rut( $cadena) {   
   $texto = preg_replace('/[^\dkK-]/', "", $cadena);     // Eliminar caracteres no validos
   list($rut, $rut_dv) = split("-", $texto, 2);          // Extraer rut y digito verificador

   if (validar_rut($rut, $rut_dv)) 
      return $rut;
   return 0;
}

// Retorna verdadero si el rut es valido.
// Si el digito verificador es k, la K debe ser mayuscula.
function validar_rut($rut, $rut_dv){
   $s = 1;
   
   if (!preg_match("/(\d{7,8})/", $rut)) 
      return false;
   if (!preg_match("/([\dKk])/", $rut_dv)) 
      return false;
   for( $m = 0; $rut != 0; $rut /= 10)
      $s = ($s + $rut % 10 * (9 - $m++ % 6)) % 11;
   $dv =  chr($s ? $s + 47 : 75);
   
   if( $rut_dv == "k") $rut_dv = K;
   if( $dv != $rut_dv)
      return false;   
   return true;
}

// Retorna el digito verificador de un rut.
function dv_rut( $rut){
   $s = 1;   
   if (!preg_match("/(\d{7,8})/", $rut)) 
      return false;
   for( $m = 0; $rut != 0; $rut /= 10)
      $s = ($s + $rut % 10 * (9 - $m++ % 6)) % 11;
   return  chr($s ? $s + 47 : 75);   
}

// Retorna verdadero si el email es valido.
function validar_email( $email) {   
/*   if( ereg(
      '^[a-z0-9]+([\.]?[a-z0-9_-]+)*@'.// usuario
      '[a-z0-9]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$', // server.
      $email))*/
   if( !preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])' .
                  '(([a-z0-9-])*([a-z0-9]))+' . '(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i'
                  , $email))
      return false;
   return true;
}

// Valida y filtra nombres
function validar_nombre( $nombre) {
/*   if( preg_match('/([0-9\(\)]+|[^0-9\(\)]+\s+[^0-9\(\)]+)/', $nombre))
      return false;*/
   if( !preg_match('/^[\p{L} ]{2,55}$/', $nombre))
      return false;
   return true;   
}

// Valida numeros
function validar_numero( $numero, $dig_min, $dig_max) {
   $exp_reg = '/^[0-9]{'.$dig_min.','.$dig_max.'}$/';
   if( preg_match($exp_reg, $numero))     // Recuerda que enla exresion regular no pueden haber espacios!
      return true;
   return false;   
}

if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

function obtener_regiones($db_zapatos){
	// Obtenemos la lista de regiones
	$lista_regiones = array();
	$query = "SELECT * FROM Region ORDER BY reg_id;";
	$resultado = mysql_query( $query, $db_zapatos);
	$num_reg = mysql_num_rows( $resultado);
	while ( $row = mysql_fetch_assoc ($resultado)) {
		$lista_regiones[$row['reg_id']] = $row['reg_des'];
	}
	return $lista_regiones;
}

function obtener_comunas($db_zapatos, &$lista_regiones){
	// Traemos listado de comunas
	$lista_comunas = array();
	foreach( $lista_regiones  as $reg_key => $reg_val) { 
		$lista_comunas[$reg_key] = array();
		$query = "SELECT * FROM Localidad WHERE reg_id = $reg_key ORDER BY loc_des;";
		$resultado = mysql_query( $query, $db_zapatos);
		
		if($resultado)
		while ( $row = mysql_fetch_assoc ($resultado)) {
			$lista_comunas[$reg_key][ $row['loc_id']] = $row['loc_des'];
		}
	}
	return $lista_comunas;
}

function obtener_cargo($db_zapatos){
	//Obtenemos loa cargos
	$lista_cargos = array();
	$query = "SELECT * FROM Tipo_Personal;";
	$resultado = mysql_query( $query, $db_zapatos);
	while ( $row = mysql_fetch_assoc ($resultado)) {
		$lista_cargos[$row['tip_id']] = $row['tip_des'];
	}
	return $lista_cargos;
}

function obtener_sucursales($db_zapatos){
	$lista_sucursal = array();
	$query = "SELECT * FROM Sucursal;";
	$resultado = mysql_query( $query, $db_zapatos);
	while ( $row = mysql_fetch_assoc($resultado)) {
		$lista_sucursal[$row['suc_id']] = $row['suc_des'];
	}
	return $lista_sucursal;
}


function obtener_personal($db_zapatos){
	$lista_personal = array();
	$query = "SELECT * FROM Personal WHERE tip_id = '1';";
	$resultado = mysql_query( $query, $db_zapatos);
	while ( $row = mysql_fetch_assoc ($resultado)) {
		$lista_personal[$row['per_nom']] = $row['per_rut'];
	}
	return $lista_personal;
}

function obtener_colores($db_zapatos){
	$lista_colores = array();
	$query = "SELECT * FROM Color ORDER BY col_descripcion;";
	$resultado = mysql_query( $query, $db_zapatos);
	while ( $row = mysql_fetch_assoc ($resultado)) {
		$lista_colores[$row['col_id']] = $row['col_descripcion'];
	}
	return $lista_colores;
}

function obtener_tallas($db_zapatos){
	$lista = array();
	$query = "SELECT * FROM Talla ORDER BY talla_num;";
	$resultado = mysql_query( $query, $db_zapatos);
	while ( $row = mysql_fetch_assoc ($resultado)) {
		$lista[$row['talla_id']] = $row['talla_num'];
	}
	return $lista;
}

function obtener_marcas($db_zapatos){
	$lista = array();
	$query = "SELECT * FROM Marca ORDER BY mar_descripcion;";
	$resultado = mysql_query( $query, $db_zapatos);
	while ( $row = mysql_fetch_assoc ($resultado)) {
		$lista[$row['mar_id']] = $row['mar_descripcion'];
	}
	return $lista;
}

function obtener_modelos($db_zapatos, &$lista_marcas){
	$lista = array();
	foreach( $lista_marcas  as $key => $val) { 
		$lista[$key] = array();
		$query = "SELECT * FROM Modelo WHERE mar_id = '$key' ORDER BY mod_descripcion;";
		$resultado = mysql_query( $query, $db_zapatos);
		
		if($resultado)
		while ( $row = mysql_fetch_assoc ($resultado)) {
			$lista[$key][ $row['mod_id']] = $row['mod_descripcion'];
		}
	}
	return $lista;
}

function obtener_tipos($db_zapatos){
	$lista = array();
	$query = "SELECT * FROM Tipo ORDER BY tip_descripcion;";
	$resultado = mysql_query( $query, $db_zapatos);
	while ( $row = mysql_fetch_assoc ($resultado)) {
		$lista[$row['tip_id']] = $row['tip_descripcion'];
	}
	return $lista;
}

function obtener_generos($db_zapatos){
	$lista = array();
	$query = "SELECT * FROM Genero;";
	$resultado = mysql_query( $query, $db_zapatos);
	while ( $row = mysql_fetch_assoc ($resultado)) {
		$lista[$row['gen_id']] = $row['gen_descripcion'];
	}
	return $lista;
}

function obtener_perfiles_cliente($db_zapatos, &$lista_generos){
	$lista = array();
	foreach( $lista_generos  as $key => $val) { 
		$lista[$key] = array();
		$query = "SELECT * FROM Perfil_Cliente WHERE gen_id = $key ORDER BY perfc_descripcion;";
		$resultado = mysql_query( $query, $db_zapatos);
		
		if($resultado)
		while ( $row = mysql_fetch_assoc ($resultado)) {
			$lista[$key][ $row['perfc_id']] = $row['perfc_descripcion'];
		}
	}
	return $lista;
}

function obtener_lista($db_zapatos, $id, $des, $restriccion = 1){
	$lista = array();
	$query = "SELECT ".$id.", ".$des." FROM Producto NATURAL LEFT JOIN Color NATURAL LEFT JOIN Talla NATURAL LEFT JOIN Modelo NATURAL LEFT JOIN Marca NATURAL LEFT JOIN Tipo NATURAL LEFT JOIN Perfil_Cliente NATURAL LEFT JOIN Genero NATURAL LEFT JOIN Pro_Sec NATURAL LEFT JOIN Sector NATURAL LEFT JOIN Bodega NATURAL LEFT JOIN Sucursal NATURAL LEFT JOIN Localidad NATURAL LEFT JOIN Region WHERE ".$restriccion;
	$resultado = mysql_query( $query, $db_zapatos);
	while ( $row = mysql_fetch_assoc ($resultado)) {
		$lista[$row[$id]] = $row[$des];
	}
	return $lista;
}



?>